The present invention relates generally to industrial controllers for the control of machines and processes and in particular, for an industrial controller whose components communicate over a network and have precisely synchronized local clocks.
Industrial controllers are special purpose computers and circuitry for the control of processes and machinery, for example, in a factory or the like. The industrial controller reads inputs from sensors associated with the controlled process and, executing one or more stored programs, provides outputs to actuators associated with the controlled process according to the stored control programs and inputs received by the control programs.
The process may encompass a large area and thus it is known to distribute the components of the industrial controller so that each component may be close to the particular portion of the process to which it is related. These separated components communicate with each other on a high-speed network.
For many applications, the speed of communication on the high-speed network is not sufficiently fast to properly synchronize operations at the various components of the industrial controller. For this reason, it is desirable to have precisely coordinated local clocks that can be used to synchronize events or data gathering at the spatially separated components of the industrial controller.
Such local clocks will tend to drift apart over time either due to minute differences in the natural frequencies of the crystal oscillators in the clocks which causes a steady drift in relative time between the clocks, or because of differences in operating conditions such as temperature, mechanical shock, and aging which causes a variable drift in relative time between the clocks.
For these reasons, a correction process is needed to maintain individual clocks in synchrony. The IEEE 1588 “Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems” is directed to maintaining the synchrony between clocks on a network. The IEEE standard defines messages that can be used to exchange timing information, although it does not define a method of implementing time synchronization using these messages.
Particularly for nondeterministic networks, such as Ethernet, efforts to synchronize clocks using network communications are hampered by the unknown delays that will be introduced by the networks. Tight synchronization, necessary to avoid large corrective jumps in the relative time of local clocks, may require frequent synchronization signals that may adversely affect the available network bandwidth.